package cn.slg.module.system.service.pk.utils;

import java.text.NumberFormat;

public class Print {

    public static NumberFormat percentInstance = NumberFormat.getPercentInstance();

    static {
        percentInstance.setMaximumFractionDigits(2);
    }

    /**
     * 白色 ： 29
     * 黑色 ： 30
     * 红色 ： 31
     * 黄色 ： 32
     * 橙色 ： 33
     * 蓝色 ： 34
     * 紫色 ： 35
     * 绿色 ： 36
     * 灰色 ：37
     */

    /**
     * @param colour  颜色代号：背景颜色代号(41-46)；前景色代号(31-36)
     * @param type    样式代号：0无；1加粗；3斜体；4下划线
     * @param content 要打印的内容
     */
    public static void formatStringPrint(String content, int colour, int type) {
        // 保存最终要存储到数据库和要在控制台打印的字符串
        String logString;

        boolean hasType = type != 1 && type != 3 && type != 4;
        if (hasType) {
            logString = String.format("\33[%dm%s\33[0m", colour, content);
        } else {
            logString = String.format("\33[%d;%dm%s\33[0m", colour, type, content);
        }
        // 控制台打印
        System.out.print(logString);

        // TODO 数据库存储
    }

    // 只格式化字符串
    public static String formatString(String content, int colour, int type) {
        boolean hasType = type != 1 && type != 3 && type != 4;
        if (hasType) {
            return String.format("\33[%dm%s\33[0m", colour, content);
        } else {
            return String.format("\33[%d;%dm%s\33[0m", colour, type, content);
        }
    }

    public static void print(String content, int colour, int type) {
        formatStringPrint(content, colour, type);
    }


}
